#ifndef EDITORCORE_SELECTOR_H
#define EDITORCORE_SELECTOR_H

#include "Common/Common.h"
#include "EditorCore/IEntity.h"
#include "EditorCore/IEntityViewer.h"

namespace editor_core {

	class Selector
	{
	public:
		Selector();
		~Selector();

		inline void AddViewer( IEntityViewer* viewer ) { m_viewers.Add( viewer ); }
		inline void RemoveViewer( IEntityViewer* viewer ) { m_viewers.Remove( viewer ); }
		inline void GetViewers( cmn::ICollection<IEntityViewer*>* viewers ) const;

		void SelectEntity( IEntity* entity );
		IEntity* GetSelectedEntity() const { return m_selectedEntity; }

	private:
		cmn::Vector<IEntityViewer*> m_viewers;
		IEntity* m_selectedEntity;

	};
}

#endif
